Message Field Class Types

Hide Topic ContentsShow Topic Contents
  1. About Message Field Class Types
  2. Class Type Descriptions

About Message Field Class Types

Assembly processes produce a lot of data such as serial numbers, material definitions, temperatures and unit quality. All this data can be very useful and may need to move up to a higher level control or execution system for further processing. The problem now is that the data from the shop floor is unstructured and doesn't have context. Much of the data exists as an individual value without the context of where it's from or what order it relates to.

The ATS Bus OT bus stop receives shopfloor data via channels. A channel defines ‘how’ the data was obtained. Each channel can have one or more channel messages that consist of one or more tags. A channel message is used to group related data into one message. The tags (which are not the same as OPC tags) tell where the data comes from and hold the value.

Channel messages are based on a message definition. A message definition is a collection of message fields that classify the data by different class types. The channel message tags link to these message fields. So, a message field defines ‘what’ the associated tag data means. Each tag value is linked to a message field and this provides context to the data.

Internally, the OT bus stop works with shopfloor messages. The shopfloor message combines the message definition and channel message into one structured message.

Example 1:

Let’s assume that the number of scrapped bottles is provided by some shop floor equipment via an XML file. One of the nodes in the XML file holds the number of scrapped bottles, the XPath to this node is known as the source of the data. The tag also has a reference to a message field. The class type of this message field is set to ‘Counter’ and its message field name is set to ‘Scrap’. Now, the OT bus stop combines the information from the XML file and the message definition and stores it in a shopfloor message.

The shopfloor message is a structured message and helps the OT bus stop to send the information to another channel and/or publishes it onto the Bus.

As mentioned earlier, class types are used to classify data but class types also dictate how the information is stored in a B2MML bus message.

The following class types are using something called an index. The index is used to group/link information of various class types:

PersonnelContext, PersonnelCounter and PersonnelProperty.

PhysicalAssetContext, PhysicalAssetCounter and PhysicalAssetProperty.

EquipmentCondition and EquipmentContext.

ComponentContext and ComponentCounter.

CustomComponentContext and CustomComponentCounter.

Example 2:

Employee information is classified as PersonnelContext. This class type can hold multiple employees. Each employee has a coverall but the coveralls are available in assorted colors. The properties of the coverall are classified as PersonnelProperty. Both PersonnelContext and PersonelProperty have an index number. The index can be used to link the 2 together. Let's assume that it is important to count the number of instances that an employee worked on a specific process, this value could be classified as PersonnelCounter. Adding the same index to the PersonnelCounter class type links the 3 together.

The index can be provided by the person that configures ATS Bus or it can be obtained from the data. To obtain the index from the data, a checkbox named Filled by Tag must be ticked. The tag configuration will then show an additional configuration item that allows the user to identify the source of the index.

The summary below talks about consumed and produced components. Consumed components are the parts/components/ingredients that are needed to produce another part/intermediate material/batch/lot. Consumed components have the word ‘Component’ in the class type.

The OT bus stop has class types for products being produced, components being consumed, tools and materials being consumed and produced, for personnel related items and for physical assets being used. The following tree groups the class types by usage:

Attachment

Consumed components (components use to create another component)

ComponentContext

ComponentCounters

CustomComponentContext

CustomComponentCounters

Produced components

Context

Counters

CustomContext

CustomCounters

ProducedMaterialContext

Properties related to the operation

Property

PropertyAttribute

Equipment related information

EquipmentState

EquipmentMode

Personnel related information

PersonnelContext

PersonnelCounter

PersonnelProperty

Physical assets (thing except tools and equipment)

PhysicalAssetContext

PhysicalAssetCounter

PhysicalAssetProperty

Tools (physical asset where class type equals ‘Tools’)

ToolContext

ToolProperty

CustomToolContext

OperationTime

StepTime

Class Type Descriptions

Attachment: This class type is used for attachment data. It could be a CNC program that should be downloaded to a CNC machine when it receives the instruction to start a work order. It could also be an XML file holding the recipe for a specific beverage. The OT bus stop translates the attachment information using the class type ‘Attachment’. This class type has the following predefined field names:

AttachmentId: A unique number identifying the attachment.

URL: A URL where the attachment is located. Either the URL is used or a combination of FilePath and FileName.

FilePath: A UNC pathname where the file is stored.

FileName: The name of the file.

Context: this class type classifies data as context information for the produced product. This class type has the following predefined field names:

OrderId: this will store the order number.

MaterialId: this will hold the Material ID.

LotId: this will hold the lot ID.

Operation: This holds the process segment identifier.

Counter: This class type classifies data as counters that provide Good, Scrap or Total counts of produced goods. It has 3 predefined field names:

Good: The number of good products produced.

Scrap: The number of scrap produced.

Total: The total number of products produced.

CustomContext: This class type allows the user to classify data as context but without being bound to the predefined field names. This class type allows the user to provide custom field names.

CustomCounter: This class type allows the user to classify data as counter data for produced components without being bound to the predefined field names. This class type would be used when counter data cannot be classified as good, scrap or total counts.

ComponentContext: This class type classifies data as context information for consumed components. A consumed component is a component that is used to produce another component e.g. a bottled beverage contains a cap, label, bottle and the beverage as consumed components. The produced product is the bottled beverage. The index of each ComponentContext entry can be used to identify the consumed component. The same is true for ComponentCounter, CustomComponentContext and CustomComponentCounter. For example, if a ComponentContext class type and a ComponentCounter class type have the same index they'll be grouped/associated under the same consumed component. This class type has the following predefined field names:

ComponentId: The component identifier.

ComponentLotId: The component lot identifier.

ComponentSerialNumber: The component serial number.

ComponentRFID: The component RFID EPC / serial number.

ComponentCounter: This class type classifies counter data as the number of consumed component. The index property of this class type is used in the same way as the index property of ComponentContext. This class type has one predefined field name.

ComponentGood: The number of consumed components.

CustomComponentContext: This class type classifies data as context information for the consumed components. The difference between this class type and ComponentContext is that this class type allows the user to provide custom field names. The index property of this class type is used in the same way as the index property of ComponentContext.

CustomComponentCounter: This class type classifies additional counters for consumed components. The field name is user configurable instead of pre-defined. The index property of this class type is used in the same way as the index property of ComponentContext.

EquipmentCondition: This class type classifies data as equipment mode or equipment state. It uses an index to differentiate between equipment. The following predefined field names are available:

EquipmentMode: The equipment mode e.g. Manual, Auto, Stop.

EquipmentState: The equipment state e.g. Running, Stopped, Halted.

EquipmentContext: This class type classifies data as Equipment class ID or equipment ID. The index of each EquipmentContext entry can be used to identify the equipment. The same is true for EquipmentCondition. For example, if a EquipmentContext class type and a EquipmentCondition class type have the same index they'll be grouped/associated under the same equipment. This class type has the following predefined field names:

EquipmentClassId: Specifies the equipment class.

EquipmentId: Identifier for the equipment.

OperationTime: This class type is used to classify data the start and end of an operation (unit of work), it has 2 predefined message field names:

StartOperation: The local time the operation started.

EndOperation: The local time the operation ended.

PersonnelContext: This class type is used to classify personnel related data. The index of each PersonnelContext entry can be used to identify the consumed component. The same is true for PersonnelCounter and PersonnelProperty. For example, if a PersonnelContext class type and a PersonnelCounter class type have the same index they'll be grouped/associated under the same personnel item. This class type has the following predefined field names:

PersonnelClassId: Class of personnel e.g. Management, Supervisor, etc.

PersonnelId: Personnel identification number.

PersonnelDescription: Brief description of the employee.

PersonnelBadge: Badge number of the employee.

PersonnelCounter: Provides quantity classification for the PersonnelContext. This class type does not have predefined field names but it has an index (see: PersonnelContext).

PersonnelProperty: Provides additional property classification for the PersonnelContext. This class type does not have predefined field names but it has an index (see: PersonnelContext).

PhysicalAssetContext: This class type contains context information for physical assets other than tools. The index of each PhysicalAssetContext entry can be used to identify the physical assets other than tools. The same is true for PhysicalAssetCounter and PhysicalAssetProperty. For example, if a PhysicalAssetContext class type and a PhysicalAssetCounter class type have the same index they'll be grouped/associated under the same physical asset. This class type has the following predefined field names:

PhysicalAssetClassId: Provides the B2MML PhysicalAssetClassId.

PhysicalAssetId: Provides the B2MML PhysicalAssetId.

PhysicalAssetDescription: Provides the B2MML PhysicalAssetDescription.

PhysicalAssetInventoryTag: Provides the B2MML PhysicalAssetInventoryTag.

PhysicalAssetCounter: provides a quantity classification for PhysicalAssetContext. This class type does not have predefined field names but it has an index (see: PhysicalAssetContext).

PhysicalAssetProperty: Provides additional property classification to PhysicalAssetContext. This class type does not have predefined field names but it has an index (see: PhysicalAssetContext).

ProducedMaterialContext: This class type holds the serial number or RFID EPC of the produced components:

SerialNumber: Serial number assigned to the product.

RFID: RFID EPC.

Property: This class type can be used to classify information that does not belong to any other class type. The data listed here can be decorated with attributes given at PropertyAttribute class type.

PropertyAttribute: This class type allows the user to classify sub property information for the properties. The field name is user configurable. The index property of this class type must be set to the property it is related to.

Assuming 2 message fields, a property and property attribute. The property is named “MyProperty” having its index set to “MyIndex” and a property attribute named “MyPropertyAttribute” having its index set to ‘MyProperty’.

StepTime: This class type is used to classify the start and end time of an operation for a specific process segment. The index of each StepTime entry can be used to identify the process segments.

StartTime: The start time of process segment.

EndTime: The end time of the process segment.

ToolContext: This class type classifies data as tool context information. The index of each ToolContext entry can be used to identify the tool. The same is true for ToolProperty and CustomToolContext. For example, if a ToolContext class type and a ToolProperty class type have the same index they'll be grouped/associated under the same tool. This class type has the following predefined field names:

ToolID: The unique identification code for the tool.

ToolDescription: A brief description of the tool.

ToolSerialNumber: A serial number of the tool.

ToolProperty: This class type allows the user to classify tool property information for the tool. The field name is user configurable. The index property of this class type is used in the same way as the index property of ToolContext.

CustomToolContext: This class type allows the user to classify data as tool context information without being bound to the predefined field names. The index property of this class type is used in the same way as the index property of ToolContext.

Can we improve this topic?